﻿using SlamDunk.ValueObjects.Enums;
using System;

namespace SlamDunk.MES.DataDrive.Bussiness.Models.StockContext
{
    /// <summary>
    /// 出库单
    /// </summary>
    public class StockOutOrder
    {
        public string 库存单据类编号 { get; set; }
        public string 库存单据类名称 { get; set; }
        public string 出库单编号 { get; set; }
        public string 源单据类型 { get; set; }
        public string 源单据编号 { get; set; }
        public string 源储存位置类型 { get; set; }
        public string 源储存位置编号 { get; set; }
        public string 源储存位置名称 { get; set; }
        public string 目标储存位置类型 { get; set; }
        public string 目标储存位置编号 { get; set; }
        public string 目标储存位置名称 { get; set; }
        public string 工厂模型编号 { get; set; }
        public string 描述 { get; set; }
        internal SourceOrderType SourceOrderType { get; set; }
        internal StorageLocationType SourceStorageLocationType { get; set; }
        internal StorageLocationType TargetStorageLocationType { get; set; }
        public void ConverterValue()
        {
            if (!string.IsNullOrWhiteSpace(this.源单据类型))
            {
                this.SourceOrderType = (SourceOrderType)Enum.Parse(typeof(SourceOrderType), this.源单据类型.Substring(0, this.源单据类型.IndexOf("(", StringComparison.Ordinal)));
            }
            if (!string.IsNullOrWhiteSpace(this.源储存位置类型))
            {
                this.SourceStorageLocationType = (StorageLocationType)Enum.Parse(typeof(StorageLocationType), this.源储存位置类型.Substring(0, this.源储存位置类型.IndexOf("(", StringComparison.Ordinal)));
            }
            if (!string.IsNullOrWhiteSpace(this.目标储存位置类型))
            {
                this.TargetStorageLocationType = (StorageLocationType)Enum.Parse(typeof(StorageLocationType), this.目标储存位置类型.Substring(0, this.目标储存位置类型.IndexOf("(", StringComparison.Ordinal)));
            }
        }
    }
}
